package Pantallas;

import java.awt.event.ActionEvent;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.Vector;

import javax.swing.JOptionPane;
import javax.swing.JPanel;

import org.omg.CORBA.FREE_MEM;

import Codigos.Alumno;
import Codigos.Seccion;


public class FrmMeneOpciones extends javax.swing.JFrame {
    private Seccion seccion;
    private boolean evaluaciones;
    private Vector columnas;
    public void EXXXX(){
    	this.dispose();
    }

    public boolean IsListados(){
    	if(evaluaciones)
    		return true;
    	else
    		return false;
    }
    public void ModificarColumnas(int condicion){
    	columnas.clear();
    	if(condicion==0){
    		columnas.add("Cedula");
    		columnas.add("Nombre");
    		columnas.add("Apellido");
    		columnas.add("Nota Final");
    		columnas.add("Estatus");
    	}
    	else
    	{
    		columnas.add("Notal Final");
    		columnas.add("Cedula");
    		columnas.add("Nombre");
    		columnas.add("Apellido");
    		columnas.add("Estatus");
    	}
    }
    
    public boolean isEvaluaciones() {
		return evaluaciones;
	}

	public void setEvaluaciones(boolean evaluaciones) {
		this.evaluaciones = evaluaciones;
	}

	public Seccion getSeccion() {
		return seccion;
	}

	public void setSeccion(Seccion seccion) {
		this.seccion = seccion;
	}

    public FrmMeneOpciones() {
        initComponents();
        seccion=new Seccion(-1);
        evaluaciones=false;
        columnas= new Vector();
    }
    public void datos(){
    	System.out.println(seccion.getNumseccion());
    }


    @SuppressWarnings("unchecked")
 
    private void initComponents() {

        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenuItem2 = new javax.swing.JMenuItem();
        jMenuItem3 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jMenuItem4 = new javax.swing.JMenuItem();
        jMenu3 = new javax.swing.JMenu();
        jMenuItem5 = new javax.swing.JMenuItem();
        jMenuItem6 = new javax.swing.JMenuItem();
        jMenuItem7 = new javax.swing.JMenuItem();
        jMenuItem8 = new javax.swing.JMenuItem();
        jMenuItem9 = new javax.swing.JMenuItem();
        jMenu4 = new javax.swing.JMenu();
        jsalir = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jMenu1.setText("Maestros");

        jMenuItem1.setText("Alumnos");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem1);

        jMenuItem2.setText("Profesor");
        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem2);

        jMenuItem3.setText("Seccion");
        jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem3ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem3);

        jMenuBar1.add(jMenu1);

        jMenu2.setText("Transacciones");

        jMenuItem4.setText("Realizar Evaluaciones");
        jMenuItem4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem4ActionPerformed(evt);
            }
        });
        jMenu2.add(jMenuItem4);

        jMenuBar1.add(jMenu2);

        jMenu3.setText("Reportes");
        

        jMenuItem5.setText("Estudiantes Por Cedula");
        jMenuItem5.addActionListener(new java.awt.event.ActionListener(){
        	public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem5ActionPerformed(evt);
            }
        	
    	 
        	//metodo click estudiantes por cedula

			private void jMenuItem5ActionPerformed(ActionEvent evt) {
				// TODO Auto-generated method stub
				if(IsListados()){
					
					ModificarColumnas(0);
				
					Vector<Alumno> aux=new Vector<Alumno>();
					int i;
					FileWriter fichero = null;
					PrintWriter c = null;
					aux=seccion.OrdenadosCedula();
				   try
			       {
			           fichero = new FileWriter("OrdenadoPorCedula.txt");
			           c = new PrintWriter(fichero);
			           c.println("Cedula  "+"  Nombre  " +"  Apellido  "+"   Nota   "+" Status");
			           for(i=0;i<aux.size();i++){
			        	    
				        c.println(aux.elementAt(i).getCedula()+"   "+aux.elementAt(i).getNombre()+"   "+aux.elementAt(i).getApellido()+"     "+aux.elementAt(i).getNotafinal()+"     "+aux.elementAt(i).getStatus());
			           }

			       } catch (Exception e) {
			           e.printStackTrace();
			       } finally {
			          try {
			          if (null != fichero)
			             fichero.close();
			          } catch (Exception e2) {
			             e2.printStackTrace();
			          }
			       }
			   
					FrmReport frmr= new FrmReport(columnas,seccion.OrdenadosCedula(),0,0);
					frmr.setVisible(true);
				}
				else
				
					JOptionPane.showMessageDialog(rootPane,"No se han presentado evaluaciones");
			}
			});
			
      
    
    
        jMenu3.add(jMenuItem5);

        jMenuItem6.setText("Estudiantes por Nota");
        jMenuItem6.addActionListener(new java.awt.event.ActionListener(){
        	public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem6ActionPerformed(evt);
            }

			private void jMenuItem6ActionPerformed(ActionEvent evt) {
				// TODO Auto-generated method stub
				if(IsListados()){
				
					ModificarColumnas(1);
				
					Vector<Alumno> aux=new Vector<Alumno>();
					int i;
					FileWriter fichero = null;
					PrintWriter c = null;
					aux=seccion.OrdenadosNotaFinal();
				   try
			       {
			           fichero = new FileWriter("OrdenadosPorNota.txt");
			           c = new PrintWriter(fichero);
			           c.println("Cedula  "+"  Nombre  " +"  Apellido  "+"   Nota   "+" Status");
			           for(i=0;i<aux.size();i++){
			        	    
				        c.println(aux.elementAt(i).getCedula()+"   "+aux.elementAt(i).getNombre()+"   "+aux.elementAt(i).getApellido()+"     "+aux.elementAt(i).getNotafinal()+"     "+aux.elementAt(i).getStatus());
			           }

			       } catch (Exception e) {
			           e.printStackTrace();
			       } finally {
			          try {
			          if (null != fichero)
			             fichero.close();
			          } catch (Exception e2) {
			             e2.printStackTrace();
			          }
			       }
			       //fin de guardar
					FrmReport frmr= new FrmReport(columnas,seccion.OrdenadosNotaFinal(),1,0);
					frmr.setVisible(true);
				}
				else
					JOptionPane.showMessageDialog(rootPane,"No se han presentado evaluaciones");
			
			
				
				
			}
        });
        
        jMenu3.add(jMenuItem6);
        

        jMenuItem7.setText("Estudiantes Aprobados");
        jMenuItem7.addActionListener(new java.awt.event.ActionListener(){
        	public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem7ActionPerformed(evt);
            }

			private void jMenuItem7ActionPerformed(ActionEvent evt) {
				// TODO Auto-generated method stub
				if(IsListados()){
					
					ModificarColumnas(0);
				
					Vector<Alumno> aux=new Vector<Alumno>();
					int i;
					FileWriter fichero = null;
					PrintWriter c = null;
					aux=seccion.ListaAprobados();
				   try
			       {
			           fichero = new FileWriter("ListaAprobados.txt");
			           c = new PrintWriter(fichero);
			           c.println("Cedula  "+"  Nombre  " +"  Apellido  "+"   Nota   "+" Status");
			           for(i=0;i<aux.size();i++){
			        	    
				        c.println(aux.elementAt(i).getCedula()+"   "+aux.elementAt(i).getNombre()+"   "+aux.elementAt(i).getApellido()+"     "+aux.elementAt(i).getNotafinal()+"     "+aux.elementAt(i).getStatus());
			           }

			       } catch (Exception e) {
			           e.printStackTrace();
			       } finally {
			          try {
			          if (null != fichero)
			             fichero.close();
			          } catch (Exception e2) {
			             e2.printStackTrace();
			          }
			       }
			       //fin de guardar
					FrmReport frmr= new FrmReport(columnas,seccion.ListaAprobados(),0,0);
					frmr.setVisible(true);
				}
				else
					JOptionPane.showMessageDialog(rootPane,"No se han presentado evaluaciones");
			
			}
        });
        
        jMenu3.add(jMenuItem7);

        jMenuItem8.setText("Estudiantes Reprobados");
        jMenuItem8.addActionListener(new java.awt.event.ActionListener(){
        	public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem8ActionPerformed(evt);
            }

			private void jMenuItem8ActionPerformed(ActionEvent evt) {
				// TODO Auto-generated method stub
				if(IsListados()){
					
					ModificarColumnas(0);
			
					Vector<Alumno> aux=new Vector<Alumno>();
					int i;
					FileWriter fichero = null;
					PrintWriter c = null;
					aux=seccion.ListaAplazado();
				   try
			       {
			           fichero = new FileWriter("ListaAplazados.txt");
			           c = new PrintWriter(fichero);
			           c.println("Cedula  "+"  Nombre  " +"  Apellido  "+"   Nota   "+" Status");
			           for(i=0;i<aux.size();i++){
			        	    
				        c.println(aux.elementAt(i).getCedula()+"   "+aux.elementAt(i).getNombre()+"   "+aux.elementAt(i).getApellido()+"     "+aux.elementAt(i).getNotafinal()+"     "+aux.elementAt(i).getStatus());
			           }

			       } catch (Exception e) {
			           e.printStackTrace();
			       } finally {
			          try {
			          if (null != fichero)
			             fichero.close();
			          } catch (Exception e2) {
			             e2.printStackTrace();
			          }
			       }
			       //fin de guardar
					FrmReport frmr= new FrmReport(columnas,seccion.ListaAplazado(),0,0);
					frmr.setVisible(true);
				}
				else
					JOptionPane.showMessageDialog(rootPane,"No se han presentado evaluaciones");
			
			}
			
        });
        jMenu3.add(jMenuItem8);

        jMenuItem9.setText("Promedio Notas");
        jMenuItem9.addActionListener(new java.awt.event.ActionListener(){
        	public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem9ActionPerformed(evt);
            }

			private void jMenuItem9ActionPerformed(ActionEvent evt) {
				// TODO Auto-generated method stub
				if(IsListados()){
					
					ModificarColumnas(0);
					FrmReport frmr= new FrmReport(columnas,seccion.OrdenadosCedula(),2,seccion.PromedioNota());
					frmr.setVisible(true);
				}
				else
					JOptionPane.showMessageDialog(rootPane,"No se han presentado evaluaciones");
			
			}
			
        });
        jMenu3.add(jMenuItem9);

        jMenuBar1.add(jMenu3);

        jMenu4.setText("Salida");
        jsalir.setText("Exit");
        jsalir.addActionListener(new java.awt.event.ActionListener(){
        	public void actionPerformed(java.awt.event.ActionEvent evt) {
        		jsalirActionPerformed(evt);
            }

			private void jsalirActionPerformed(ActionEvent evt) {
				// TODO Auto-generated method stub
			    System.out.println("salir");
			    EXXXX();
			}
			
        });
        jMenu4.add(jsalir);
    
        jMenuBar1.add(jMenu4);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 658, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 456, Short.MAX_VALUE)
        );

        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setBounds((screenSize.width-658)/2, (screenSize.height-505)/2, 658, 505);}
	       
    

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
      
    	if( (seccion.getNumseccion()!=-1) && (!isEvaluaciones())){
        	System.out.println("soy agregar alumno");
        	FrmAlumno frm = new FrmAlumno(this);
        	frm.setVisible(true);
        
        	}
        	else
                if(seccion.getNumseccion()==-1){
        			JOptionPane.showMessageDialog(rootPane,"Seccion no abierta");
        			if((JOptionPane.showConfirmDialog(rootPane,"Desea abrir seccion")==JOptionPane.YES_OPTION)){
        				FrmSeccion frms = new FrmSeccion(this);
        		        frms.setVisible(true);
        			}
                }
                else
                	JOptionPane.showMessageDialog(rootPane,"Periodo de inscripciones ya completado");
                	
          
    }
   

    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
    
    	if((seccion.getTutorseccion()==null) && (seccion.getNumseccion()!=-1) ){
    
       FrmProfesor frm= new FrmProfesor(this);
       frm.setVisible(true);
    	}
    	else
            if(seccion.getNumseccion()==-1){
    			JOptionPane.showMessageDialog(rootPane,"Seccion no abierta");
    			if((JOptionPane.showConfirmDialog(rootPane,"Desea abrir seccion")==JOptionPane.YES_OPTION)){
    				FrmSeccion frms = new FrmSeccion(this);
    		        frms.setVisible(true);
    			}
            }
            else
            	JOptionPane.showMessageDialog(rootPane,"Profesor ya asignado");
    	
    }

    private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
        
        if(seccion.getNumseccion()==(-1)){
    	FrmSeccion frms = new FrmSeccion(this);
        frms.setVisible(true);
        }
        else
        	JOptionPane.showMessageDialog(rootPane,"Seccion ya Procesada");
    }
    
    
    private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
   
    	if((!evaluaciones) && (seccion.getTutorseccion()!=null) && (seccion.getListaAlumno().size()>0)){
        FrmRealizarEvaluaciones frmeval = new FrmRealizarEvaluaciones(this);
        frmeval.setVisible(true);
        evaluaciones=true;
        int i;
        for(i=0;i<seccion.getListaAlumno().size();i++){
        	System.out.println(seccion.getListaAlumno().elementAt(i).getNombre());
        }
        
    	}
    	else
    		if(evaluaciones)
    		   JOptionPane.showMessageDialog(rootPane,"Evaluaciones realizadas");
    		
    			if(seccion.getTutorseccion()==null)
    				JOptionPane.showMessageDialog(rootPane,"No hay Profesor");
    			if(seccion.getListaAlumno().size()<=0)
    				JOptionPane.showMessageDialog(rootPane,"No hay suficiente cantidad de alumnos");
    }


  
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new FrmMeneOpciones().setVisible(true);
            }
        });
    }

    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenu jMenu4;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JMenuItem jMenuItem5;
    private javax.swing.JMenuItem jMenuItem6;
    private javax.swing.JMenuItem jMenuItem7;
    private javax.swing.JMenuItem jMenuItem8;
    private javax.swing.JMenuItem jMenuItem9;
    private javax.swing.JMenuItem jsalir;
  

}
